var config = {
    api: 'http://localhost:9090/yfuwebsite', // 请求地址前缀
    token: 'xxxx-xxx-xxxxx',
    env: "dev"
};
/** url: 请求接口地址,
 type: 请求类型 POST GET,
 json: 数据请求方式,
 mask: 是否有loading,
 data: 请求参数
 */
jQuery.extend({
    ajaxHttp : function(options) {
        if (config.env === "dev") {
            console.log(options)
        }
        var loading = '';
        var def = $.Deferred();
        if (options.mask) {
            loading = layer.load(1, {
                shade: [0.1,'#fff'] //0.1透明度的白色背景
            });
        }
        $.ajax({
            url: config.api + options.url,
            data: JSON.stringify(options.data),
            type: options.type,
            headers: {
                'x-auth-token': config.token
            },
            contentType: options.json ? 'application/json;charset=UTF-8' : 'application/x-www-form-urlencoded'
        }).then(function (rsp) {
            if (config.env === "dev") {
                console.log(rsp)
            }
            setTimeout(function () {
                layer.close(loading);
            }, 100)
            if (rsp.statusCode == "200") {
                def.resolve(rsp.data);
            } else {
                layer.msg(rsp.msg, {
                    time: 2000
                });
            }
        }, function (error) {
            if (error.status == 504) {
                layer.msg('请求超时，请重试', {
                    icon: 5,
                    time: 2000
                });
            } else if (error.responseText) {
                var err = JSON.parse(error.responseText);
                var code = err.code; // 错误码
                var emsg = err.message; // 错误内容提示（字符串）
                switch (code) {
                    case 2022: // 2022 掉线，重新登录
                        layer.msg(emsg, {
                            icon: 5
                        }, function () {
                            location.href = '/login.html';
                        });
                        break;
                }
            }
            def.reject(error);
            setTimeout(function () {
                layer.close(loading);
            }, 100)
        });
        return def;
    }
});



